package raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * java.io.RandomAccessFile
 * RAF是用来读写文件的API，其基于指针可以对文件任意位置进行读写操作。
 * 
 * @author 范传奇
 *
 */
public class RAFDemo1 {
	public static void main(String[] args) throws IOException {
		/*
		 * 当前目录下的raf.dat文件操作
		 * 
		 * RAF有两个构造方法
		 * RandomAccessFile(String path,String mode)
		 * 第一个参数为要操作的文件的路径
		 * 
		 * RandomAccessFile(File file,String mode)
		 * 第一个参数是要操作的文件所表示的file对象
		 * 
		 * 第二个参数有两个值:
		 * r:只读模式，对文件仅做读取操作。
		 * rw:读写模式，对文件数据即可读也可写。
		 * 
		 * 注：如果指定的文件不存在，那么当操作模式为读写模式时，会自动创建该文件
		 * 如果是只读模式则会抛出异常(系统找不到指定文件) 
		 */
		RandomAccessFile raf = new RandomAccessFile("./raf.dat","rw");
		
		/*
		 * 向文件中写入1个字节
		 * void write(int d)
		 * 写入的是给定的int值所对应的2进制的"低八位"
		 * 整数1，二进制:
		 *                            vvvvvvvv
		 * 00000000 00000000 00000000 00000001
		 */
		raf.write(1);//00000001
		//多次调用write方法，可以写多个字节
		raf.write(2);//00000010
		raf.write(13);//00001101
		/*
		 * 写完后，文件中的2进制为:
		 * 00000001 00000010 00001101
		 */
		System.out.println("写出完毕!");
		
		raf.close();//读写完毕后必须关闭
	}
}









